// pages/user/index.js
var app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    login:false,
    openid:'',
    userInfo:null,
    canIUseGetUserProfile: false,
    all:'0' ,//全部
    adopt:'0' ,//已录取
    refuse:'0' ,//未录取
    nnderReview:' ',//审核中
    isAdmin:false, //是否管理员
    
    // history:wx.getStorageSync('history').length //获取足迹的长度
    },

    // 加载用户申请的招募的状态的数量
    applicationsNumber:function() {
      // 页面参数，e为 ： 1获取参与过、2以通过、3未通过、 4收藏
      // 获取缓存的全部申请
      const  getMyApplications = wx.getStorageSync('getMyApplications')  
      // console.log('返回的申请列表数据',res)
      // 统计 数量
      var i = 0 //统计adopt
      var j = 0//统计refuse 
      for (let index = 0; index < getMyApplications.length; index++) {
        if(getMyApplications[index].applicationStatus==1){  //通过
          i++
        }else if(getMyApplications[index].applicationStatus==2){ //未通过
          j++
        }else{  //审核中 Under review

        }
      }
      this.setData({
        all:getMyApplications.length,
        adopt:i,
        refuse:j,
        
      })
    },
   
  
    getUserProfile(e) {
      // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认
      // 开发者妥善保管用户快速填写的头像昵称，避免重复弹窗
      wx.getUserProfile({
        desc: '用于完善会员资料', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
        success: (res) => {
          this.setData({
            userInfo: res.userInfo,
            login: true,
          })
          wx.setStorage({
            key: 'login',
            data: true,
          })
          wx.setStorage({
            key: 'userInfo',
            data: res.userInfo,
          })
          // console.log('调用了getUserProfile',res);
          let that = this;
          wx.cloud.callFunction({
            name: 'login',
            complete: res => {
              // console.log('云函数获取到的openid: ', res.result)
              var openid = res.result.openid;
              that.setData({
                openid: openid
              })
              wx.setStorage({
                key: 'openid',
                data: that.data.openid
              })
            }
          })
          console.log('第一次登录？',app.globalData.isFirstLogin)
          if(app.globalData.isFirstLogin){  //是否第一次授权
            wx.cloud.callFunction({
              name:'personal',
              data:{
                parameter:"addUser",
                class:'',
                email:'',
                name:'',
                nickName:res.userInfo.nickName,
                studentId:'',
                telephone:'',
              }
            }).then(res=>{
              
            }).catch(err=>{
              console.log('错误信息',err)
            })
          }
        this.onLoad()  
        },
        fail:(err)=>{
          console.log('登录失败了',err)
          wx.setStorage({
            key: 'login',
            data: false,
          })
        }
      })
    },
    getUserInfo(e) {
      // 不推荐使用getUserInfo获取用户信息，预计自2021年4月13日起，getUserInfo将不再弹出弹窗，并直接返回匿名的用户个人信息
      wx.getUserInfo({
        success: (res) => {
          this.setData({
            userInfo: res.userInfo,
            login: true,
          })
          wx.setStorage({
            key: 'login',
            data: true,
          })
          wx.setStorage({
            key: 'userInfo',
            data: res.userInfo,
          })
          // console.log('调用了getUserProfile',res);
          let that = this;
          wx.cloud.callFunction({
            name: 'login',
            complete: res => {
              // console.log('云函数获取到的openid: ', res.result)
              var openid = res.result.openid;
              that.setData({
                openid: openid
              })
              wx.setStorage({
                key: 'openid',
                data: that.data.openid
              })
            }
          })
          console.log('第一次登录？',app.globalData.isFirstLogin)
          if(app.globalData.isFirstLogin){  //是否第一次授权
            wx.cloud.callFunction({
              name:'personal',
              data:{
                parameter:"addUser",
                class:'',
                email:'',
                name:'',
                nickName:res.userInfo.nickName,
                studentId:'',
                telephone:'',
              }
            }).then(res=>{
              
            }).catch(err=>{
              console.log('错误信息',err)
            })
          }
          this.onLoad()  
        },
        fail:(err)=>{
          console.log('登录失败了',err)
          wx.setStorage({
            key: 'login',
            data: false,
          })
        }
        
      })
    },

      // 跳转到申请记录
      goMyApplication:function(e){
        if(wx.getStorageSync('login')){  
          // const recruitCache = wx.getStorageSync('getMyApplications')
          console.log('点击了',e)
          const id = e.currentTarget.dataset.id
          if(id=='0'){
            wx.navigateTo({
              url: '/pages/myApplication/myApplication?status='+id,
            })  
          }else{
            wx.navigateTo({
              url: '/pages/applicationStatus/applicationStatus?id='+id,
            })  
          }
        }else{
          if(this.data.canIUseGetUserProfile){
            this.getUserProfile(e)
          }else{
            this.getUserInfo(e)
          }
        }
      },
    // 跳转到我的发布
    getRecruitByUserId:function(e){
      if(wx.getStorageSync('login')){  
        const id = e.currentTarget.dataset.id
        if(id=='1'){
          wx.navigateTo({
            url: '/pages/publishList/publishList?id='+id,
          })
        }else {
          wx.navigateTo({
            url: '/pages/recruitStatus/recruitStatus?id='+id,
          })
        }
       
      }else{
        if(this.data.canIUseGetUserProfile){
          this.getUserProfile(e)
        }else{
          this.getUserInfo(e)
        }
      }   
    },
    

    // 跳转到设置
    goSetUp:function(){
      if(wx.getStorageSync('login')){  
        wx.navigateTo({
          url: '/pages/setUp/setUp',
        })
      }else{
        if(this.data.canIUseGetUserProfile){
          this.getUserProfile()
        }else{
          this.getUserInfo()
        }
      }   
    },
    //我的收藏
    goCollection:function(){
      if(wx.getStorageSync('login')){  
        wx.navigateTo({
          url: '/pages/collection/collection',
        })
      }else{
        if(this.data.canIUseGetUserProfile){
          this.getUserProfile()
        }else{
          this.getUserInfo()
        }
      }
    },
    //跳转到管理员界面 
    goAdmin:function(){
      wx.navigateTo({
        url: '/pages/admin/admin',
      })
    },

     /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
      // 初始化数据，防止数据残留，退出登录延迟
      this.setData({
        login:false,
        userInfo:'',
        all:'',
        adopt:'',
        refuse:'',
      })
      // 判断是否可用wx.getUserProfile
      if (wx.getUserProfile) {
        this.setData({
          canIUseGetUserProfile: true
        })
      }
      //利用缓存实现持久登录
      if(wx.getStorageSync('login')){ //如果用户登录授权过,
        this.setData({
          login: wx.getStorageSync('login'),
          userInfo:wx.getStorageSync('userInfo'),
          openid:wx.getStorageSync('openid'),
        })
        // 加载我的申请,的数量统计
        app.getApplications().then(res=>{
          this.applicationsNumber()
        }) 
      } 
    },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
   
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.onLoad()
    this.setData({
      isAdmin:wx.getStorageSync('isAdmin'), //是否管理员
    })
    // console.log('足迹缓存为',wx.getStorageSync('history'))
    // this.setData({
    //   history:wx.getStorageSync('history').length
    // })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})